﻿using System;
using System.Collections.Generic;

namespace LastLand.Data.World
{
    public class CCountry
    {
        private Int32 meleeTechLevel_;
        private Int32 rangedTechLevel_;
        private Int32 mountedTechLevel_;
        private Int32 siegeTechLevel_;
        private Int32 constructionTechLevel_;
        private Int32 agricultureTechLevel_;
        private Int32 industryTechLevel_;
        private Int32 commerceTechLevel_;

        private Int32 meleeTechProgress_;
        private Int32 rangedTechProgress_;
        private Int32 mountedTechProgress_;
        private Int32 siegeTechProgress_;
        private Int32 constructionTechProgress_;
        private Int32 agricultureTechProgress_;
        private Int32 industryTechProgress_;
        private Int32 commerceTechProgress_;

        private Int32 food_;
        private Int32 population_;

        private List<CCharacter> character_;
        private List<CCity> city_;
        private List<CWorldGrid> territoryGrid_;

        public CCountry()
        {
            character_ = new List<CCharacter>();
            city_ = new List<CCity>();
            territoryGrid_ = new List<CWorldGrid>();
        }

        public Int32 Population
        {
            get { return population_; }
            set { population_ = value; }
        }

        public Int32 Food
        {
            get { return food_; }
            set { food_ = value; }
        }

        public List<CCharacter> Character
        {
            get { return character_; }
            set { character_ = value; }
        }

        public List<CCity> City
        {
            get { return city_; }
            set { city_ = value; }
        }

        public List<CWorldGrid> TerritoryGrid
        {
            get { return territoryGrid_; }
            set { territoryGrid_ = value; }
        }

        public Int32 MeleeTechLevel
        {
            get { return meleeTechLevel_; }
            set { meleeTechLevel_ = value; }
        }

        public Int32 RangedTechLevel
        {
            get { return rangedTechLevel_; }
            set { rangedTechLevel_ = value; }
        }

        public Int32 MountedTechLevel
        {
            get { return mountedTechLevel_; }
            set { mountedTechLevel_ = value; }
        }

        public Int32 SiegeTechLevel
        {
            get { return siegeTechLevel_; }
            set { siegeTechLevel_ = value; }
        }

        public Int32 ConstructionTechLevel
        {
            get { return constructionTechLevel_; }
            set { constructionTechLevel_ = value; }
        }

        public Int32 AgricultureTechLevel
        {
            get { return agricultureTechLevel_; }
            set { agricultureTechLevel_ = value; }
        }

        public Int32 IndustryTechLevel
        {
            get { return industryTechLevel_; }
            set { industryTechLevel_ = value; }
        }

        public Int32 CommerceTechLevel
        {
            get { return commerceTechLevel_; }
            set { commerceTechLevel_ = value; }
        }

        public Int32 MeleeTechProgress
        {
            get { return meleeTechProgress_; }
            set { meleeTechProgress_ = value; }
        }

        public Int32 RangedTechProgress
        {
            get { return rangedTechProgress_; }
            set { rangedTechProgress_ = value; }
        }

        public Int32 MountedTechProgress
        {
            get { return mountedTechProgress_; }
            set { mountedTechProgress_ = value; }
        }

        public Int32 SiegeTechProgress
        {
            get { return siegeTechProgress_; }
            set { siegeTechProgress_ = value; }
        }

        public Int32 ConstructionTechProgress
        {
            get { return constructionTechProgress_; }
            set { constructionTechProgress_ = value; }
        }

        public Int32 AgricultureTechProgress
        {
            get { return agricultureTechProgress_; }
            set { agricultureTechProgress_ = value; }
        }

        public Int32 IndustryTechProgress
        {
            get { return industryTechProgress_; }
            set { industryTechProgress_ = value; }
        }

        public Int32 CommerceTechProgress
        {
            get { return commerceTechProgress_; }
            set { commerceTechProgress_ = value; }
        }
    }
}
